#!/bin/bash

a=24
b=48

if [ "$a" -eq 24 ] && [ "$b" -eq 47 ]
then
  echo "Test #1 succeeds."
else
  echo "Test #1 fails."
fi

# 错误:   if [ "$a" -eq 24 && "$b" -eq 47 ]
#+         这会尝试执行' [ "$a" -eq 24 '
#+         然后会因没找到匹配的']'而失败.
#
#  注意:  if [[ $a -eq 24 && $b -eq 24 ]]也可以.
#  双方括号的if-test比
#    (第17行和第6行的"&&"有不同的意思.)请注意，双方括号 [[ ]]
#    条件测试语句提供了更多的功能和灵活性，
#    例如支持字符串模式匹配和逻辑操作符的简化写法。
#    相比之下，方括号 [ ] 条件测试语句是较为传统的写法，
#    它在功能上略有限制。


if [ "$a" -eq 98 ] || [ "$b" -eq 47 ]
then
  echo "Test #2 succeeds."
else
  echo "Test #2 fails."
fi


#  -a且和-o或选项提供
#+ 混合条件测试另一个选择.


if [ "$a" -eq 24 -a "$b" -eq 47 ]
then
  echo "Test #3 succeeds."
else
  echo "Test #3 fails."
fi


if [ "$a" -eq 98 -o "$b" -eq 47 ]
then
  echo "Test #4 succeeds."
else
  echo "Test #4 fails."
fi

#请注意，在Shell脚本中，-eq 是用于整数相等比较的操作符，如果需要进行浮点数或字符串的比较，需要使用其他方法

a=rhino
b=crocodile
if [ "$a" = rhino ] && [ "$b" = crocodile ]
then
  echo "Test #5 succeeds."
else
  echo "Test #5 fails."
fi

exit 0